//package pub.wkq.thread;
//
//import java.util.concurrent.*;
//
//public class IOThreadPoolUtil {
//
//    // 根据系统可用的处理器核心数设置最大线程数
//    private static final int MAX_THREAD_NUM = Runtime.getRuntime().availableProcessors() * 2;
//
//    // 创建一个自定义的线程工厂，可以给线程命名
//    private static final ThreadFactory THREAD_FACTORY = new ThreadFactoryBuilder().setNameFormat("io-pool-%d").build();
//
//    // 创建一个拒绝策略，当任务队列满了后，直接抛出异常
//    private static final RejectedExecutionHandler REJECT_HANDLER = new ThreadPoolExecutor.AbortPolicy();
//
//    // 创建一个阻塞队列，用于存放等待执行的任务
//    private static final BlockingQueue<Runnable> WORK_QUEUE = new LinkedBlockingQueue<>(100);
//
//    // 创建一个单例的线程池对象
//    private static volatile ThreadPoolExecutor threadPool;
//
//    // 私有化构造方法，防止外部创建实例
//    private IOThreadPoolUtil() {}
//
//    // 提供一个公共的静态方法，用于获取线程池对象
//    public static ThreadPoolExecutor getThreadPool() {
//        if (threadPool == null) {
//            synchronized (IOThreadPoolUtil.class) {
//                if (threadPool == null) {
//                    threadPool = new ThreadPoolExecutor(
//                            MAX_THREAD_NUM, // 核心线程数
//                            MAX_THREAD_NUM, // 最大线程数
//                            0L,             // 空闲线程存活时间
//                            TimeUnit.MILLISECONDS, // 时间单位
//                            WORK_QUEUE,     // 任务队列
//                            THREAD_FACTORY, // 线程工厂
//                            REJECT_HANDLER  // 拒绝策略
//                    );
//                }
//            }
//        }
//        return threadPool;
//    }
//
//}